DART Forest Scene Setup Tutorial
1 Overview
This tutorial provides a step-by-step guide for setting up a forest scene simulation in DART (Discrete Anisotropic Radiative Transfer). DART is a comprehensive 3D radiative transfer model designed for simulating radiative budget and remote sensing acquisitions of natural and urban landscapes. This tutorial focuses on creating a high-resolution forest scene with detailed 3D tree models and proper optical properties.
2 Prerequisites
Before starting this tutorial, ensure you have:
- DART software installed (Version 5.10.5 or later)
- The
DART_forest_scene.zipfile containing all necessary input files - Basic understanding of radiative transfer modeling
- Sufficient computational resources (12-core processor recommended)
DART is developed by the CESBIO laboratory (Centre d’Etudes Spatiales de la BIOsphère) and provides both forward and inverse modeling capabilities for optical remote sensing. For more information, visit the DART manual.
3 Part 1: Initial Setup
3.1 Extracting and Organizing Files
The first step is to properly organize the DART project files:
Extract the DART_forest_scene.zip file and copy all contents except the DART_directory/user_data/simulations/forest_scene/input folder to your DART installation directory. The structure should look like:
DART/database← Copy database files hereDART/user_data← Copy other files here (except input folder)
This ensures all necessary optical properties, 3D models, and configuration files are in the correct locations.
3.2 Creating a New Simulation
To begin your forest scene simulation:
- Open DART
- Click on Simulation → New Simulation
- Enter your simulation name (e.g., “forest_scene”)
- Click “New”
As shown in Figure 1, the dialog allows you to specify the simulation name and location within your simulations folder.
- Keep all simulations in the default
simulationsfolder for easier management - You can create folder structures within the simulations directory
- Use “Choose Simulations…” if you have an existing simulation to import
- Use descriptive names for your simulations for easy identification
3.3 Opening the Editor
After creating your simulation:
- Click on Parameters → Editor
- The DART Simulation Editor window will open
- You’re now ready to configure your simulation parameters
The Editor interface (Figure 2) provides access to all simulation parameters through an organized tree structure on the left side of the window.
4 Part 2: Core Simulation Parameters
4.1 Basic Configuration
The first configuration screen allows you to set fundamental simulation parameters:
Atmosphere Simulation: - Enable atmosphere simulation even if you only need “bottom of atmosphere” products - This ensures more accurate radiative transfer calculations
Threading Configuration: - Switch to Advanced Mode - Set Number of threads in DART tracking to 12 - This optimizes performance on multi-core systems
Radiative Transfer Mode: - For high spatial resolution forest scenes, use bi-directional Light propagation mode (DART Lux) - This provides the most accurate and computationally efficient results for detailed 3D scenes
These settings are highlighted in Figure 3.
The DART team provides Python scripts that can be implemented directly in DART or used for data preparation. These scripts offer additional automation capabilities. Refer to the DART manual for more details on Python integration.
4.2 Spectral Band Configuration
Configure the spectral bands for your simulation:
- Right-click on “Spectral intervals”
- Select Add… → Spectral band
- Add four spectral bands with the following specifications:
| Band Number | Mode | Central Wavelength (μm) | Bandwidth (μm) |
|---|---|---|---|
| 0 | Mode R | 0.56 | 0.032 |
| 1 | Mode R | 0.65 | 0.032 |
| 2 | Mode R | 0.73 | 0.032 |
| 3 | Mode R | 0.85 | 0.052 |
Figure 4 shows the configuration windows for all four spectral bands. Each band is set to Mode R (reflectance) with specific central wavelengths and bandwidths appropriate for vegetation monitoring.
- For larger numbers of spectral bands, use “Add range of…” method
- If bands have varying bandwidths, directly modify the
$your_simulation_name/input/phase.xmlfile - This approach is more efficient for hyperspectral simulations
5 Part 3: Scene Configuration
5.1 Bi-directional Parameters
Configure the image rendering and computation parameters:
Image Resolution: - Set Target pixel size [m] to 0.05 (5 cm) - This provides high-resolution output suitable for detailed analysis
Optimized Parameters: These values are results of optimization and consultation with the DART team: - Target sample density per pixel (images): 50 - Maximal rendering time per image: 2000 - Number of repetitions of the user-defined scene: 1
Radiation Settings: - Sampler: Sobol - Russian Roulette Acceleration: Enable (checked)
Periodic Save: - Periodic save method: No periodic save
All these parameters are shown in Figure 5 with their recommended values highlighted.
When starting a new simulation type, it’s recommended to verify these parameters for your specific: - Scene type (forest, urban, agricultural) - Spatial resolution requirements - Spectral resolution needs
Parameter optimization can significantly affect both accuracy and computation time.
5.2 Output Products Configuration
Configure which products DART will generate:
- Navigate to Products → BRF/BTF
- Enable “Write BRF/BTF files and maps”
- Set Type of color/model of Earth scene element: Reflectance/Temperature
- Configure Images - stored per band (folder):
- Format: Ilwis (.mpr) and netcdf (.nc)
- Maximum VZA for storing images: 1.0
- Disable Sensor plane images
As shown in Figure 6, only the necessary outputs are enabled to minimize computation time and storage requirements.
- DART is transitioning to netcdf as the primary output format
- Ilwis format is included here for compatibility with this tutorial
- Additional products can be enabled but will increase computation time and storage requirements
- Only enable the products you actually need for your analysis
6 Part 4: Optical Properties
6.1 Leaf Optical Properties
Define the spectral properties of leaves using the PROSPECT model:
- Right-click on “Lambertian” section
- Select Add → Lambertian (or modify the default)
- Configure the following:
Basic Settings: - Lambertian property name: “leaves” - Disable “Multiplicative factor for database” - Enable “Reflectance, transmittance” in the Prospect section
PROSPECT Parameters: Use the PROSPECT leaf radiative transfer model with these default biochemical parameters: - Structure coefficient: 1.5 - Chlorophyll: 40 - Carotenoid: 10 - Brown pigment: 0.0 - Equivalent water thickness: 0.012 - Anthocyanin: 0 - Dry matter content: Dry matter content
Figure 7 demonstrates the complete PROSPECT configuration for leaf optical properties, including all biochemical parameters that drive the spectral response.
The PROSPECT model is a leaf-level radiative transfer model that simulates leaf optical properties based on biochemical composition. These parameters will be used for: - Look-Up Table (LUT) generation - Parameter retrieval from remote sensing images - Sensitivity analysis
The multiplicative factor option allows scaling of optical properties by a constant value when needed.
6.2 Bark Optical Properties
Define spectral properties for tree bark:
- Right-click on “Lambertian”
- Select Add → Lambertian
- Configure:
Database Selection: - Lambertian property name: “bark” - Disable “Multiplicative factor for database” - 2D lambertian database: Select lanzhot_materials.db - 2D lambertian model: Select trunk_FA_SY_QE_sp_Lanzhot_fix
The bark optical properties (Figure 8) use measured spectral reflectance data from the Lanzhot forest site, providing realistic bark reflectance characteristics.
- The
lanzhot_materials.dbfile should be in yourDART/databasefolder (from the extracted zip) - You can also use optical properties from DART’s default
Lambertian_vegetation.db - Use DART Database Manager (Tools menu) to create or modify optical property databases
- Measured optical properties provide more realistic simulations than generic values
6.3 Ground Optical Properties
Define the forest floor spectral properties:
- Right-click on the bark optical properties
- Select Duplicate
- Modify:
- Lambertian property name: “ground”
- 2D lambertian model: Select
forestfloor_LZ_mod_fix_txt
This creates optical properties representing the forest understory and leaf litter, as shown in Figure 9.
7 Part 5: Earth Scene Configuration
7.1 Scene Dimensions and Location
Set up the basic scene parameters:
Scene Dimensions: - X max: 30 m - Y max: 30 m
Ground Properties: - Optical property name: “ground”
Geographic Location: Set coordinates for central Czech Republic: - Altitude of the DEM zero level: 500 m - Latitude: [50°; 30’] - Longitude: [17°; 50’]
Figure 10 displays the complete Earth Scene configuration, including the scene extent, ground properties, and geographic coordinates that define the simulation environment.
Exactly Periodic Scene: - Isolated scene: Light crossing edges disappears (boundary effects) - Repetitive scene: Scene is virtually replicated around the edges (reduces boundary effects) - Infinite slope: Appropriate for sloped terrain
Cell Dimensions: - These parameters are irrelevant for bi-directional mode - In other modes, they correspond to simulated image spatial resolution
8 Part 6: 3D Scene Objects
8.1 Importing Tree Field Data
Add the tree locations and specifications:
- Right-click on “Object fields”
- Select Add → Field
- Field description file: Select
beech.txt(from the extracted zip) - Name: “Field”
- Enable “Show this field’s objects in the 2D view”
Figure 11 shows the field import interface where you specify the text file containing tree positions and properties.
The beech.txt file contains information for each tree: - Species/object type identifier - XY position coordinates - Scaling factor (tree size) - Rotation angles
This format allows efficient specification of multiple objects without manually placing each one. Refer to the DART manual for detailed file format specifications.
8.2 Importing 3D Tree Models
Import the first tree model:
- Right-click on “3D Models”
- Select Import file
- Choose the first 3D object file:
beech_20(from extracted files)
Configuration: - Name: “beech_20” - Color: Select a distinctive color (e.g., orange) - Keep other options at default
The 3D model import dialog (Figure 12) allows you to specify the model file, assign a name, and configure display properties including color coding for easy identification in the 2D view.
DART includes a “Creation of 3D objects” tool for generating simple geometric crown shapes filled with leaf facets. While less detailed than full 3D scanned models, this can be sufficient for many applications and is computationally efficient.
8.3 Configuring Leaf Groups
For the leaves group within the 3D object:
- Expand the tree model in the hierarchy
- Select the leaves group
- Configure:
Group Settings: - Name: “leaves” - Enable “Double face” ✓
Optical Properties: - Type of optical property: Lambertian - Optical property name: “leaves”
Display: - Group’s color: Leaf (green)
Figure 13 demonstrates the leaves group configuration within the 3D object hierarchy, with the 2D view showing the spatial distribution of trees in the scene.
The “Double face” option is critical for leaves. It ensures: - Both sides of leaf facets have optical properties - Proper simulation of leaf transmittance - Accurate light scattering within the canopy
Without this option, the back face of leaves would be transparent, leading to incorrect radiative transfer calculations.
The “Used to create turbid or fluid volume” option converts 3D objects into a turbid medium representation. This is useful for: - Easily changing LAI values without multiple 3D models - Computational efficiency in some cases
However, it reduces spatial accuracy and makes bi-directional mode less efficient. Use only when appropriate for your application.
8.4 Configuring Woody Parts
For the trunk and branches group:
- Select the wooden parts group
- Configure:
Group Settings: - Name: “wooden_parts” - Enable “Double face” ✓ (recommended)
Optical Properties: - Type of optical property: Lambertian - Optical property name: “bark”
Display: - Group’s color: Trunk (brown)
The woody parts configuration (Figure 14) assigns bark optical properties to trunk and branch components of the tree model.
For trunks and branches with no transmittance, double face is technically unnecessary if all facet normals are correctly oriented. However, enabling it is safer unless you’re certain about facet orientation, as it prevents rendering artifacts.
8.5 Adding All Tree Models
Repeat the import and configuration process for all remaining 3D tree models:
beech_27beech_28beech_62
For each model: 1. Import the 3D file 2. Set a unique name 3. Assign a distinctive color for visualization 4. Configure leaf groups with “leaves” optical properties 5. Configure woody groups with “bark” optical properties 6. Enable double face for both groups
When all models are imported and configured, the 2D editor view (Figure 15) displays colored circles representing tree crowns at their specified locations. Different colors help distinguish between different tree models or size classes. The spatial distribution shown here matches the specifications in the beech.txt field file.
9 Part 7: Atmospheric Configuration (Optional)
The atmosphere section provides detailed control over atmospheric radiative transfer:
10 Atmospheric Parameters
If you have measured or observed atmospheric data, you can configure:
Atmosphere Database: - Select appropriate atmospheric model (e.g., BIRND_JULY2020.db)
Gas Composition: - Temperature profile (US standard models available) - Ozone and other gas vertical profiles - CO2 mixing ratio - Water vapor content
Aerosol Properties: - Set gas amounts (H2O, CO2) - Configure aerosol optical depth - Define atmospheric components (Downward fluxes, Upward fluxes)
Advanced Settings: - Atmosphere extrapolation parameters - Scattering threshold - Maximum scattering iteration number - Atmosphere geometry (discretization, sensor layer altitude)
These parameters (Figure 16) significantly affect top-of-atmosphere and atmospheric correction simulations.
11 Part 8: Running the Simulation
11.1 Saving and Validation
Before running:
- Click the Save button in the Editor
- Verify no error messages appear
- Review the 2D scene view to confirm proper placement
- Close the Editor
11.2 Running DART Modules
Execute the simulation:
- In the main DART window, click Run → DART
- This runs all four modules in sequence:
- Direction: Calculates sun and viewing geometry
- Phase: Processes spectral and optical properties
- Maket: Constructs the 3D scene
- Dart: Performs radiative transfer calculations
Figure 17 displays the Run menu with all DART modules. The execution order is important, as each module depends on the outputs of previous modules.
First Run: - All modules must be executed
Subsequent Runs: - Only run modules affected by parameter changes - Module dependencies: - Direction: Affects sun/sensor geometry - Phase: Affects spectral bands and optical properties - Maket: Affects scene structure and objects - Dart: Affected by all previous modules
This selective execution saves considerable computation time during parameter optimization.
Expected computation times vary based on: - Number of spectral bands (currently 4) - Scene complexity (30m × 30m with multiple trees) - Spatial resolution (5 cm pixels) - Number of threads (12 recommended)
For this configuration, expect 30-60 minutes on a modern 12-core system.
12 Part 9: Sequence Launcher for LUT Generation
The Sequence Launcher is a powerful tool for generating Look-Up Tables (LUTs) by systematically varying parameters:
12.1 Setting Up a Sequence
- Click Run → SequenceLauncher
- Click “Create sequence”
- Click “Add”
- Select parameters to vary:
- Navigate through the parameter tree
- Select optical properties or structural parameters
- Define the range of values
Figure 18 shows the complete Sequence Launcher workflow, including the parameter selection dialog, the properties group details window, and the main processes configuration panel where you can specify which DART modules to run and how many simulations to execute in parallel.
12.2 Configuration Options
Parameter Selection: Choose which parameters to vary, such as: - PROSPECT biochemical parameters (Chlorophyll, LAI, etc.) - Structural parameters (tree dimensions, densities) - Atmospheric conditions - Sun angles
Process Configuration: In Preferences → Process and threads to run: - Select which modules to run (based on changed parameters) - Set number of parallel simulations - Each simulation uses the specified number of threads
Example configuration for 12-core system: - Threads per simulation: 3 - Parallel simulations: 4 - Total thread usage: 12
Balance parallel simulations and threads per simulation based on your system’s capabilities and memory.
12.3 Running the Sequence
- Click “Prepare and run sequence”
- Monitor progress in the console window
- Results will be saved in numbered subdirectories
Generated LUTs are valuable for: - Parameter retrieval from remote sensing data - Sensitivity analysis - Model inversion - Uncertainty quantification - Training machine learning models
The systematic parameter variation creates a database relating scene parameters to simulated reflectance.
13 Summary and Best Practices
Essential Steps: - Proper file organization in DART directories - Careful spectral band configuration - Appropriate spatial resolution for application - Realistic optical properties from measurements
Common Mistakes to Avoid: - Forgetting to enable double face for leaves - Incorrect spectral bandwidth settings - Insufficient spatial resolution - Isolated scene boundaries causing edge effects
Best Practices: - Use measured optical properties when available - Validate PROSPECT parameters against lab measurements - Consider seasonal variations in leaf properties - Document all optical property sources
Considerations: - Bark properties vary by species and condition - Understory optical properties affect overall scene reflectance - Leaf age and health influence biochemical parameters
Optimization Strategies: - Use appropriate thread count for your system - Enable Russian Roulette acceleration - Optimize rendering time parameters - Only generate needed output products - Use periodic scene boundaries to reduce edge effects
Resource Requirements: - RAM: 16-32 GB recommended for large scenes - Storage: Plan for large output files (GB per simulation) - CPU: Multi-core processor essential for reasonable run times
Validation Steps: - Visual inspection of 2D scene layout - Check for error messages in Editor - Verify spectral signatures are realistic - Compare with field measurements if available - Test with simplified scenes first
Troubleshooting: - Save frequently during setup - Test with single spectral band initially - Use smaller scene for parameter testing - Check DART manual for error messages
14 Advanced Topics
14.1 Custom 3D Objects
Creating your own tree models:
DART accepts 3D objects in several formats: - OBJ (most common) - PLY - FBX (with conversion)
Requirements: - Properly defined groups (leaves, trunk, branches) - Correct facet normals - Reasonable polygon count (balance detail vs. computation) - Separate materials for different components
14.2 Python Integration
DART supports Python scripting for:
- Automated parameter sweeps
- Custom scene generation
- Post-processing workflows
- Integration with other tools
See the DART manual for Python API documentation.
14.3 Atmosphere Modeling
For detailed atmospheric studies:
- Use measured atmospheric profiles when available
- Consider aerosol optical depth variations
- Account for water vapor absorption
- Validate against AERONET data
14.4 Validation Approaches
Recommended validation methods:
- Lab measurements: Compare PROSPECT outputs to spectroradiometer data
- Field campaigns: Validate scene reflectance with handheld or UAV spectrometers
- Cross-comparison: Compare with other radiative transfer models (PROSAIL, librat)
- Sensitivity analysis: Use Sequence Launcher to assess parameter impacts
15 Additional Resources
DART Documentation: - Official DART Website - User manual (included with installation) - Tutorial collection - Forum for user questions
Scientific Background: - Gastellu-Etchegorry et al. publications on DART methodology - Remote sensing textbooks on radiative transfer - PROSPECT model documentation
Community: - DART user mailing list - Annual DART training workshops - CESBIO laboratory contacts
Model Limitations: - DART is computationally intensive for large scenes - Accuracy depends on input data quality - Simplified atmospheric models may not capture all effects - 3D object complexity affects computation time
Data Requirements: - Accurate 3D scene geometry - Validated optical properties - Appropriate atmospheric parameters - Sufficient computational resources
Application Scope: DART is suitable for: ✓ Forest and vegetation studies ✓ Urban remote sensing ✓ Precision agriculture ✓ Sensor design and testing
May be excessive for: ✗ Simple BRDF calculations (use simpler models) ✗ Very large spatial extents (consider other approaches) ✗ Real-time applications (computation time prohibitive)
16 Conclusion
This tutorial has walked through the complete workflow for setting up a forest scene simulation in DART. The combination of detailed 3D objects, measured optical properties, and physically-based radiative transfer provides a powerful tool for remote sensing research and application development.
Key takeaways:
- Proper setup is crucial: Careful attention to file organization, optical properties, and scene configuration ensures successful simulations
- Bi-directional mode is optimal: For high-resolution 3D scenes, DART Lux provides the best balance of accuracy and efficiency
- Validation is essential: Compare simulations with field measurements whenever possible
- Sequence Launcher enables systematic analysis: Use this tool for parameter studies and LUT generation
- Computational resources matter: Plan for significant computation time and storage requirements
The skills developed in this tutorial provide a foundation for more advanced DART applications, including multi-temporal studies, sensor simulation, and parameter retrieval from remote sensing data.
This tutorial is based on DART version 5.10.5. While the core concepts remain consistent across versions, specific interface details may vary. Always refer to the official DART documentation for the most current information.
17 Appendix: Common Issues and Solutions
Problem: DART won’t start - Check Java installation (required) - Verify environment variables - Run from command line for error messages
Problem: Database files not found - Verify file paths in simulation settings - Check that extracted files are in correct DART directories - Use absolute paths if relative paths fail
Problem: Out of memory errors - Reduce scene size or resolution - Decrease number of threads - Increase Java heap size in DART configuration
Problem: Very slow execution - Verify thread count settings - Check for excessive output products - Consider using coarser resolution for testing
Problem: Images not generated - Check “Products” configuration - Verify maximal VZA settings - Ensure sufficient disk space - Check write permissions
Problem: Unexpected spectral values - Verify optical property assignments - Check for missing double face settings - Validate PROSPECT parameters
Problem: Trees not visible in 2D view - Enable “Show this field’s objects in the 2D view” - Check field file format and paths - Verify tree positions are within scene bounds
Problem: Optical properties not applied - Confirm optical property names match - Check database file paths - Verify group assignments in 3D objects